import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import app from './modules/app'
import settings from './modules/settings'
import user from './modules/user'
import menu from './modules/menu'
import tagsView from './modules/tagsView'

// 通过全局方法Vue.use()，实现为每个Vue组件(Vue每个实例)都添加上$store属性，
// 并将vuex的实例绑定到$store属性上。如此在任何Vue的组件中都能通过使用this.$store直接调用vuex。
Vue.use(Vuex)

// 初始化具体的Store对象
const store = new Vuex.Store({
  modules: {
    app,
    settings,
    user,
    menu,
    tagsView
  },
  getters
})

// 导出Vuex供别的Vue组件去使用
export default store
